<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .box {
        background-color: green;
      }
    </style>
  </head>
  <body>
    <!-- 1. 创建一个根标签  -->
    <div id="root"></div>

    <!-- 2. 引入react库文件 
    注意: 先引入react后引入react-dom. 因为react-dom依赖react
    -->
    <script
      crossorigin
      src="https://unpkg.com/react@17/umd/react.development.js"
    ></script>
    <script
      crossorigin
      src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"
    ></script>
    <script src="./js/babel.min.js"></script>

    <!-- 3. 根据数据动态创建元素,最后渲染到页面上 -->
    <!-- type="text/babel" 作用: 让babel编译这个script里面的代码. 会将jsx编译成 React.createElement -->
    <script type="text/babel">
      // jsx注意点:
      // 1. 一段jsx必须要有一个根标签
      // 2. 写jsx的时候,写标签要按照标准写法去写,比如input这种单标签,一定要自闭和
      // 其他写虚拟dom时的注意问题:
      // 1. 写虚拟dom的时候,如果有写属性和js关键字和保留字相同,则需要改写.但是react会提示,按提示写即可
      const div = (
        <div id="box" className="box">
          <h1>123</h1>
          <p>345</p>
          <label htmlFor=""></label>
          <input type="text"></input>
          <input type="text" />
        </div>
      )
      ReactDOM.render(div, document.getElementById('root'))
    </script>
  </body>
</html>
